package com.young.cms.model.enums;

import com.young.common.util.StringUtils;

/**
 * 代码生成扩展标记枚举
 *
 * @author wangjy
 * @date 2021/10/30 18:47:45
 */
public enum EGenExtendTagEnum {
    /**
     * 支持导入功能
     */
    IMPORT("tag_import", "支持导入"),
    /**
     * 支持导出
     */
    EXPORT("tag_export", "支持导出"),
    /**
     * 继承BaseDO模型
     */
    EXTENDS_BASE_DO("tag_BaseDO", "继承BaseDO模型"),
    /**
     * 自动填充BaseDO
     */
    FILL_BASE_DO("tag_fill_BaseDO", "继承并自动填充BaseDO"),
    /**
     * 继承排序模型
     */
    EXTENDS_DB_SORT_DO("tag_DbSortDO", "继承DbSortDO"),

    /**
     * 视图表格操作列按钮-编辑
     */
    VIEW_OPER_EDIT("tag_view_edit", "编辑"),
    /**
     * 视图表格操作列按钮-删除
     */
    VIEW_OPER_DEL("tag_view_del", "删除"),
    ;
    /**
     * 标签
     */
    public final String tag;
    /**
     * 说明
     */
    public final String text;

    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        for (EGenExtendTagEnum e : EGenExtendTagEnum.values()) {
            sb.append(e.tag).append(",");
        }
        System.out.println("扩展标最大长度=" + (sb.length() - 1));
    }
    /**
     * 判断入参标识中是否有当前标签
     *
     * @param tags 标签,多个使用逗号拼接
     * @return
     */
    public boolean in(String tags) {
        if (StringUtils.isNotBlank(tags)) {
            String[] arr = tags.split(",");
            for (String tag : arr) {
                if (this.eq(tag)) {
                    return true;
                }
            }
        }
        return false;
    }

    /**
     * 判断相等
     *
     * @param tag
     * @return true表示相等
     */
    public boolean eq(String tag) {
        return this.tag.equals(tag);
    }

    /**
     * 判断不相等
     *
     * @param type
     * @return true表示不相等
     */
    public boolean notEq(String type) {
        return !this.eq(type);
    }

    EGenExtendTagEnum(String tag, String text) {
        this.tag = tag;
        this.text = text;
    }
}
